const fsp = require("fs/promises");
const path = require("path");
// 引入外部函数
const { done, jsonModif, darkestModif } = require("./function");
/**
 * From: 名西酱的整合包(A) + 少女地牢自用整合(B) + 怪物皮肤Skins合集(C)
 * Type:
 * 1. 字体
 * 2. 汉化
 * 3. 补丁
 * 4. 扩充型
 * 5. 地区/怪物
 * 6. 人物
 * 7. 皮肤(人物皮肤置于人物上面)
 * 8. 贴图/美化
 * 【细节】
 * 补丁：修补其他模组的模组。
 * 大型大修或添加：添加新地牢或更改系统大部分内容的模组。
 * 小调整：对游戏系统进行微调，但范围较小。
 * 重新平衡：重新平衡现有英雄、怪物或类似事物的模组。
 * 新内容：新内容：添加新内容(如角色、怪物、小饰品或怪癖)的模组。
 * 皮肤：添加英雄颜色调色板和皮肤的模组。
 *
 * 待整合 https://steamcommunity.com/profiles/76561198047713904/myworkshopfiles/
 *
 * n: 文件名, f: 来源, i: 信息
 * 文件名请填写sfw版本，如有nsfw版本需在对象中新增nsfw键值，指向nsfw版本文件名即可
 * 如需自行替换文件，请添加使用 r: true
 */

const fileMapRaw = {
  /* 5 - 少女地牢1~5 */
  '#2935950794': { f: '', i: '' }, // 更好的模组目录
  '#2809414348': { f: '', i: '' }, // 更多可用的任务
  '#2814682822': { f: 'B', i: '' }, // 字体重做
  '#1621080079': { f: '', i: '' }, // 个人汉化
  '#1961806297': { f: '', i: '' }, // DD Mod Schinese Fix 防文字闪烁
  '#1143685298': { f: '', i: '' }, // DD Mod Schinese l10n (DD汉化)
  '#3222492353': { f: 'B', i: '' }, // 词序重做
  '#3175294347': { f: 'B', i: '', r18: true }, // 领主·后宫
  /* 5 - 自加 */
  '#3516161617': { f: 'B', i: '' }, // 自制音乐 MOD | 明日方舟音乐替换2.0: 3295945889
  // '#2135686607': { f: 'B', i: '' }, // 大背包堆叠整合包
  '#3173601015': {
    f: 'B', i: '', async cb (data) {
      return await done(data, '已调整道具原价出售', async () => {
        await darkestModif([data.path, 'inventory', 'base.supply.inventory.items.darkest'], data => {
          data.inventory_item.forEach(item => {
            item['.sell_gold_value'] = item['.purchase_gold_value']
          });
          return data
        });
      });
    }
  }, // Zagreus's Exquisite UI - 精致UI
  '#3173467642': { f: 'B', i: '' }, // 独立6饰品、21技能、14扎营技能UI界面
  // '#3172824348': { f: 'B', i: '' }, // 19背包、商店以及6饰品、21技能、14扎营技能UI界面
  '#3403277734': { f: 'B', i: '' }, // 护耳，移除猪叫蚊子叫阴效
  '#2432021327': { f: 'B', i: '' }, // 方舟的理智与医疗
  /*{n: '#3173467642', f: '',  i: ''},*/
  '#2799235099': { f: 'B', i: '' }, // 女性化人名
  '#3385954074': { f: 'B', i: '' }, // 无限制格斗（移除等级限制）
  '#3173750591': { f: 'B', i: '' }, // 墓园复活事件
  // '#2585899460': { f: 'B', i: '' }, // 马车人数上限优化+良好怪癖英雄 //*已通过修正解决
  '#2986058562': {
    f: 'B', i: '', r: '-set', async cb (data) { // 任务成功负面怪癖概率下降
      return await done(data, '已将任务完成后的负面怪癖获得率调至1%~20%', async () => {
        await jsonModif([data.path, 'shared', 'nonegquirk.rules.json'], json => {
          json.negStress0Success = 0.01
          json.negStress100Success = 0.2
          return json
        });
      });
    }
  },
  /* 119 - 少女地牢6~125 */
  '#900123064': { f: '', i: '' }, // Skeleton Key Start 初始钥匙
  '#2351225281': { f: '', i: '' }, // No Week Limit Worries 无限制周数
  '#2862945396': { f: '', i: '' }, // 更快的地牢
  '#1172190166': { f: '', i: '' }, // 互动提示（需求显示）
  '#2916317094': { f: '', i: '' }, // Fully Lit Darkness 无光调色
  '#1663950419': { f: '', i: '' }, // Abundant Loot 战利品掉落翻倍
  '#2096091301': { f: '', i: '' }, // Dark Loading Screens 加载界面美化
  '#963550890': { f: '', i: '' }, // 家族遗物1:1交换
  // {n: '#2070704450', f: '',  i: ''}, // 5格饰品 24格背包
  // '#1111555280': { f: '', i: '' }, // 7 怪癖, 7 可锁定 - //*精制UI是8+8
  '#2455714793': { f: '', i: '' }, // 好感度怪癖 [Love Token]
  '#903788427': { // Anti-grind & Larger Roster（防枯燥与更大规模队伍）
    f: '', i: '', async cb (data) {
      return await done(data, '已修正不同马车等级的干员特质数量以及等级需求', async () => {
        await jsonModif([data.path, "campaign", "town", "buildings", "stage_coach", "stage_coach.building.json"], json => {
          const tgArr = json.data.stores[0].data.upgraded_recruits_upgrades;
          tgArr.forEach((item, index) => {
            // 特质 0 1 2 2 2 -> 0 1 2 3 4
            item.number_of_extra_positive_quirks = index;
            // 怪癖 0 1 2 3 4 -> 0 0 1 1 2
            item.number_of_extra_negative_quirks = index <= 1 ? 0 : index <= 3 ? 1 : 2;
            // 升级需求 a a b b c -> a a b c d
            item.upgrade_requirement_code = index <= 1 ? 'a' : index == 2 ? "b" : index == 3 ? "c" : 'd';
          })
          return json
        });
      })
    }
  },
  '#1397427477': { f: '', i: '' }, // Better Nomad Wagon (CC) 更好的游牧货车
  '#2783587630': { f: '', i: '' }, // protect your eyes 农庄战斗护眼补丁(防光污染)
  '#2163192159': { f: '', i: '' }, // 地牢自动补给(可能与其他背包物品堆叠Mod冲突)
  '#2512838402': { f: '', i: '' }, // 任务地图背景贴图美化
  '#1808025694': { f: '', i: '' }, // Arena Bosses 新区域:Boss竞技场
  '#2751078061': { f: '', i: '' }, // 末世鼠疫汉化
  '#2683922974': { f: '', i: '' }, // 末世鼠疫（怪物）
  '#2115544857': { f: '', i: '' }, // 夜巡 - 太阳之岛续作
  '#1689234891': { f: '', i: '' }, // 太阳之岛
  '#2133515740': { f: '', i: '' }, // 雷吉尤 - 太阳之岛扩展（不应该放前面吗？）
  '#2651071021': { f: '', i: '' }, // 庄园
  '#2299938973': { f: '', i: '' }, // 宠物墓园
  '#1895761375': { f: 'A', i: '' }, // 宠物商店（补丁）
  '#1779509342': { f: 'B', i: '' }, // 宠物2 本体
  '#2271257412': { f: '', i: '' }, // 农庄Plus
  '#1419429961': { f: '', i: '' }, // 庭院Plus
  '#1556787438': { f: '', i: '' }, // 维度混乱（小村庄被入侵事件）
  '#2615050801': { f: '', i: '' }, // 怪物在此扩展：新阴影
  '#2839840164': { f: '', i: '' }, // Crystalline Harbinger 结晶先驱者
  '#3066974284': { f: '', i: '' }, // 海湾小Boss: Orcadian
  '#2433996706': { f: '', i: '' }, // 怪物在此 本体
  '#2044162110': { f: '', i: '' }, // Koala's Creature Collection 考拉的生物收集
  '#2875467989': { f: '', i: '' }, // 月光地牢：废墟敌群
  '#1879840996': { f: '', i: '' }, // Lumberjack Miniboss 伐木工小首领
  '#2632371486': { f: '', i: '' }, // Wildlander Invasion 野人入侵
  '#2956138798': { f: '', i: '' }, // Swine Scavenger Miniboss 疣猪小首领
  '#2955643906': { f: '', i: '' }, // Bristle and Bone 鬃毛与骨头（怪物与饰品）
  '#1656676055': { f: '', i: '' }, // Nerub 地穴小首领
  '#2574286049': { f: '', i: '' }, // Mimic Miniboss 模仿者小首领（宝箱怪）
  '#2643031580': { f: '', i: '' }, // 裹尸布大酋长 个人汉化
  '#2916512378': { f: '', i: '' }, // 裹尸布大酋长 本体
  '#2273220019': { f: '', i: '' }, // The Rotting King 腐烂之王
  '#1889221242': { f: '', i: '' }, // Doomsday 审判日
  '#2937204043': { f: '', i: '' }, // The Kraken - CC Addon 克拉肯首领
  '#1938759986': { f: '', i: '' }, // Abyssal Horror Miniboss 深渊恐怖小首领
  '#1470903789': { f: '', i: '' }, // Unhooded Shrew Mini-boss 无头鼩鼱小首领
  '#1655294502': { f: '', i: '' }, // The Banshee by Marvin Seo and Clair de Lune 《女妖》

  // 人物 Mod
  '#3473569265': { f: 'B', i: '' }, // 莉萝艾
  '#3262202047': { f: 'B', i: '' }, // 森蚺
  '#3309026393': { f: 'B', i: '' }, // 空弦
  '#3295545219': { f: 'B', i: '' }, // 铃兰
  '#2182716765': { f: 'B', i: '' }, //*New* 炽灵神使
  '#2986856460': { f: 'B', i: '' }, //*New* 魔王 姬尔
  // '#2982167948': { f: '',  i: '' }, // 空洞骑士
  '#2811103318': { f: '', i: '' }, // 凯尔希
  '#2786772131': { f: '', i: '' }, // 塞雷亚
  '#2572649246': { f: '', i: '' }, // 爱国者
  '#2987682730': { f: '', i: '' }, // 刻俄柏
  '#2655362191': { f: '', i: '' }, // 斯卡蒂额外饰品
  '#2670710268': { f: '', i: '' }, // 斯卡蒂皮肤
  '#2323592084': { f: '', i: '' }, // 斯卡蒂
  '#2953859565': { f: '', i: '' }, // 浊蒂动作
  '#2731935606': { f: '', i: '' }, // 浊心斯卡蒂
  '#2869512638': { f: '', i: '' }, //「契术师」 Warlock class
  '#2200558948': { f: '', i: '' }, // Lilith class
  '#3025596654': { f: '', i: '' }, //「幻术师」The Mesmer Class「幻术师」The Mesmer Class
  '#3052303742': { f: '', i: '' }, //「灾厄」Scourge Class
  '#2443410554': { f: '', i: '' }, //「殷红迷雾」The Red Mist
  '#3017953053': { f: '', i: '' }, //「柳真」Yujin Class
  '#2453490825': { f: '', i: '' }, //「邵」Xiao Class Mod
  '#2975149661': { f: '', i: '' }, //「风佑之狐」The Fuujin Kitsune
  '#2585273417': { f: '', i: '' }, //「妖狐巫女」The Kitsune Miko
  '#3166564317': { f: '', i: '' }, // Remilia class 蕾米莉亚 文档版
  '#2817045273': { f: '', i: '' }, //「芙兰朵露」Flan Class
  '#2914877703': { f: '', i: '' }, //「加百列」The Gabriel Class
  '#3199970205': { f: '', i: '' }, // Onikenshi Class 鬼族剑士
  '#1596685165': { f: '', i: '' }, // Ruler Class Mod 贞德
  '#2487626836': { f: '', i: '' }, // Assault Kunoichi Class 女忍
  '#2933308472': { f: '', i: '' }, //「旧裔」The Ancient Ones Class
  '#3295725084': { f: 'B', i: '' }, //「独角兽」Unicorn

  // 皮肤 Mod
  '#2612142945': { f: '', i: '' }, // Crusader Profaned Knight SFW skin 十字军SFW皮肤
  '#1399965923': { f: 'B', i: '' }, // UMP45 强盗皮肤 - 血猎 '#2979505704'
  '#3129401071': { f: '', i: '' }, //【炽光】修女皮肤
  '#2906192365': { f: '', i: '' }, // Leper Conductor skin
  '#2537880572': { f: '', i: '' }, // 伊妮德 训犬师皮肤
  '#3144008457': { f: '', i: '' }, // 天满 赏金猎人皮肤
  '#3171387328': { f: '', i: '' }, // The Minstrel 小丑皮肤
  '#2881264806': { f: '', i: '' }, // man_at_arms conner skin
  '#2828803016': { f: '', i: '' }, // R18_HellionSkin
  '#3166506912': { f: '', i: '' }, // [skin] abomination remilia
  '#2991940788': { f: '', i: '' }, //『烂辉』神秘学者皮肤
  '#2522769522': { f: '', i: '' }, // antiquarian foxdemon skin
  '#2846371510': { f: '', i: '' }, // Grave robber Arina skin SFW
  '#2070082784': { f: '', i: '' }, // Musketeer replacement skin
  '#2501350203': { f: '', i: '' }, // arbalest mp40 skin
  '#2502465345': { f: '', i: '' }, //「帕梅莉&帕梅菈风格破盾皮肤」
  '#2829801531': { f: '', i: '' }, // Flagellant Lissandra skin SFW

  // 贴图
  '#1126022925': { f: '', i: '' }, // Dark Souls - Bonfire Skins 黑魂篝火皮肤
  '#1894189039': { f: '', i: '' }, // Estus Flask 黑魂艾斯图斯药壶替换食物皮肤
  '#1895408371': { f: '', i: '' }, // Coiled sword 缠绕之剑替换木柴皮肤
  '#3184243970': { f: 'B', i: '' }, // 目标指示器-地牢2风格
  '#3184390341': { f: 'B', i: '' }, // 状态栏图标美化-地牢2风格
  // '#2801777951': { f: '', i: '' }, // 华丽的目标贴图
  // 城镇 NPC
  '#3003211991': { f: '', i: '' }, // 营帐 幼狼
  '#2708394169': { f: '', i: '' }, // 马车 魔族不认识
  '#2833192386': { f: '', i: '' }, // 酒馆 令 - 兔娘不认识 3036435098
  '#3106389505': { f: 'B', i: '', nsfw: '#3225164590' }, // 疗养院 苏苏洛 - 华法琳 '#2790586422'
  '#2946617425': { f: 'B', i: '', nsfw: '#2990898384' }, // 教堂 幽灵鲨 - 梅琳娜 '#2790550423'
  '#3414242206': { f: '', i: '' }, // 铁匠铺 泥岩 - 猫娘不认识 2857946185
  '#2619080712': {
    f: '', i: '', r: '-eye', async cb (data) { // 公会 瑕光鞭刃
      return await done(data, '已替换公会人物贴图', async () => {
        const source = path.resolve(data.path, 'campaign', 'town', 'buildings', 'guild');
        const target = path.resolve(data.path, 'campaign', 'town', 'buildings', 'misc', 'no eyes');
        await fsp.cp(source, target, { recursive: true, force: true });
      })
    }
  },
  '#2896187017': { f: '', i: '' }, // 游牧货车商人 艾丽妮 - 猫娘不认识 2752413638
  '#2840991283': { f: '', i: '' }, // 水晶饰品商人 猫娘不认识
  '#2853305067': { f: '', i: '' }, // 墓园 女牧师不认识
  '#1775553286': { f: '', i: '' }, // EC- town statue Filianore skin 雕像
  '#3158186892': { f: '', i: '' }, // 活动报告栏 不认识
  '#3475187259': { f: '', i: '' }, // Town Speaker公告栏 妮芙 - 迷迭香2895876896 - 艾尔登法环 '#2790652331'
  '#2898971375': { f: '', i: '' }, // 术语表 白面鸮 - 紫式部1984419415
  '#2801190040': { f: '', i: '' }, // 补给商人 可露希尔

  // UI 美化
  '#3465585057': {
    f: 'B', i: '', async cb (data) { // 指针 PRTS
      const need = path.resolve(data.path, 'cursors', 'a (64).png')
      const target = path.resolve(data.path, 'cursors', 'arrow.png');
      return await done(data, 'PRTS 风格指针文件已更换为 64px 版本', async () => {
        await fsp.rename(need, target);
      })
    }
  },
  // '#2451087872': { f: '', i: '' }, // 废墟图书馆风格战斗UI替换
  '#2899422022': { f: '', i: '' }, // More supply icons 物品图标替换
  '#1456218486': { f: '', i: '' }, // Stacking Gem Icons 宝石堆叠图标美化
  '#3018381075': { f: '', i: '' }, // 忄生存大师
  '#2902787895': { f: '', i: '' }, //【场景贴图系列/warrens】兽窟替换艾尔登法环/Elden Ring
  '#2785314050': { f: '', i: '' }, // LW- Town Event beautify part 1-3 城镇事件1-3
  '#2790485249': { f: '', i: '' }, // LW- crypts Landscaping 2 遗迹美化2
  '#2223110321': { f: '', i: '' }, // LW - courtyard Landscaping 花园
  '#1876916354': { f: '', i: '' }, // LW- blacksmith build add details -铁匠铺细节添加 -ver 0.6
  '#2863538809': { f: '', i: '' }, // LW- abbey&graveyard add details 教堂和墓地微美化

  // 怪物皮肤（少女化）
  '#3033578895': { f: 'B', i: '', r18: true }, // 血肉肖像替换
  /* 28 - r18 monster - start at 131 */
  '#1927418127': { f: '', i: '', r18: true }, // monster girl brigand part1
  '#2126123472': { f: '', i: '' }, // Crystalline (apprentice)
  '#2149921874': { f: '', i: '' }, // Crystalline ~Champion~ + 'Doomsday' replacer
  //{n: '#2495920344', f: '',  i: ''}, // Bloodstained Decadence
  '#3118462597': { f: '', i: '', r: '-r' }, // crimson court monster girl
  // {n: '#2571715879', f: '',  i: ''}, ？不知道是啥 有可能是庭院的附属包，现在已经没了
  '#2255153973': { f: '', i: '' }, // Myconidae plus
  '#2444921571': { f: '', i: '', r: '-r' }, // skeleton monster girl
  '#2595158050': { f: '', i: '' }, // Slithering ~Shieldbreaker's snakes replacer~
  '#2363408795': { f: '', i: '' }, // monster girl Rabid Dog
  '#2469594184': { f: '', i: '' }, // monster girl ectoplasm large 史莱姆
  '#2371315430': { f: '', i: '' }, // monster girl unclean_giant
  '#2983829337': { f: '', i: '' }, // MosterGirl-Fishman-shaman ver1.0
  '#2540976407': { f: '', i: '' }, // Monsters Girl-fishman
  '#1902868494': { f: '', i: '', r: '-r' }, // LW- Cute Slime Girl 0.91 史莱姆
  '#2852433413': { f: '', i: '' }, // 爬爬娘
  '#2838224866': { f: '', i: '' }, // 石像娘
  '#2941036616': { f: '', i: '' }, // 溺尸娘
  '#3087526036': { f: '', i: '' }, // 死灵法师
  '#2836305813': { f: '', i: '' }, // 螃蟹娘
  '#2902394464': { f: '', i: '' }, // 蛆蛆子
  '#2843675516': { f: '', i: '' }, // 疯娘子
  '#2897776350': { f: '', i: '' }, // 收藏家
  '#2927186990': { f: '', i: '' }, // 小提琴
  '#2976894770': { f: '', i: '' }, // 邪教徒
  '#2666678290': { f: '', i: '' }, // fishman mod
  // 长期未更新，已取消载入
  // '#2880952324': { f: '', i: '' }, // Porkin's Monster Skin : 2. Prophet
  // '#2888985421': { f: '', i: '' }, // Porkin's Monster Skin : 3. Siren (Less mutated)
  // '#2919926622': { f: '', i: '' }, // Porkin's Monster Skin : 4. Fanatic
};

// 根据源目录数据生成带下标的 Map
module.exports = {
  fileMap: new Map(Object.entries(fileMapRaw).map(([n, meta], index) => [n.replace('#', ''), { ...meta, index }]))
}
